import SMERouter from "sme-router";
import axios from "axios"


//引入试图，如果引入的是html,得到的是字符串,直接提供路由的render的方法使用
import loginView from "$v/login"
import advView from "$v/adv"
import advListView from "$v/advList"
import adminListView from "$v/adminList"


//实例化路由器对象  并且传入路由的作用区域
//默认访问的hash路由模式  http:// xx xx xx /#/login
const router = new SMERouter("app", "html5")

window.router = router;

//配置路由
router.route("/login", (req, res) => {

    //req:请求对象，主要包含了请求的路径地址和其他传参的参数
    //res:响应对象，主要包含了响应的方法    比如render方法，响应一个渲染 

    res.render(loginView())
})

//配置adv 和 二级路由
router.route("/adv", (req, res, next) => {
    //res有一个subRoute方法， 调用该方法可以得到一个二级路由存放的标识，我们可以把这个标识传给ejs，放在对应的位置即可

    // res.render(advView({
    //     subRoute: res.subRoute()
    // }));
    next(advView({
        subRoute: res.subRoute(),
        url: req.url
    }));
})

router.route("/adv/adminList", (req, res) => {
    res.render(adminListView())
    const oSaveAdminBtn = document.getElementById('saveAdminBtn');
    oSaveAdminBtn.onclick = async function () {
        const adminNameValue = document.adminForm.adminName.value.trim();
        const passwordValue = document.adminForm.password.value.trim();
        const rePasswordValue = document.adminForm.rePassword.value.trim();


        //判断所有的输入不能为空
        if (!adminNameValue || !passwordValue || !rePasswordValue) {
            return alert("输入内容不能为空!!!!");
        }

        //判断密码是否一致
        if (passwordValue !== rePasswordValue) {
            return alert("两次输入的密码不一致")
        }

        //向后端发送添加管理员请求
        try {
            await request.post("/addAdmin", {
                adminName: adminNameValue,
                password: passwordValue,
                regTime: new Date().toLocaleString()
            })

            alert("添加成功")
        } catch (e) {
            //请求异常后提示用户
            alert("有异常" + e.message)
        }
    }
})


router.route("/adv/advList", (req, res) => {
    res.render(advListView())
})

